package com.yiren.dbaa.module.device.contract;

import com.yiren.dbaa.currency.model.ObdCarModel;

import java.util.List;

/**
 * Created by WANGRONGXIANG
 * on 2022/6/21
 * Describe 下位机契约
 */
public interface LowerComputerContract {

    interface Model {

        /**
         * 获取OBD名字
         * @return
         */
        String getObdName();

        /**
         * 切换OBD车辆模型
         *
         * @param obdCarModelCode
         */
        void switchCarModel(int obdCarModelCode);

        /**
         * 保存OBD车型到本都
         *
         * @param obdCarModelCode
         */
        void saveCarModel(int obdCarModelCode);

        /**
         * 获取OBD车辆模型列表
         */
        List<ObdCarModel> getObdCarModels();
    }

      interface   View {

        /**
         * 显示OBD车辆模型选择的对话框
         *
         * @param obdCarModels
         */
        void showSelectObdCarModelDialog(List<ObdCarModel> obdCarModels);

        /**
         * 选择车辆模型成功
         */
        void selectCarModelSuccess(String carModelName);

        /**
         * 更新设备信息
         */
        void updateDeviceInfo();
    }

    interface Presenter {

        /**
         * 更换OBD主机盒会导致选择的车型发生变化，这里根据主机盒车型重新保存车型
         */
        void setObdCarModelCode();

        /**
         * 获取OBD车辆模型名称
         */
        String getObdCarModelName();

        /**
         * 切换OBD车辆模型
         */
        void switchObdCarModel(View view);

        /**
         * 切换OBD车辆模型
         *
         * @param obdCarModelCode
         */
        void switchObdCarModel(int obdCarModelCode);
    }
}
